package com.weeego.web.base;

import java.io.Serializable;
import java.util.List;

public interface BaseDAO {

 
    
    
    /********
     * 
     * @param hql
     * @param formindex
     * @param toindex
     * @return
     */
    public List findByHql(int pageNo, int pageSize, String queryname);

    /***************************************************************************
     * 查找�?有的内容
     * 
     * @param serializable
     * @return
     */
    public List findAll(Serializable serializable);

    /***************************************************************************
     * 查询hql的所有结�?
     * 
     * @param hql
     * @return
     */

    public List findByHql(String hql);

    /***************************************************************************
     * 通过hql查找对象 只返回第�?�?
     * 
     * @param hql
     * @return
     */
    public Serializable findObjectByHql(String hql);

    /***************************************************************************
     * 通过对象+id查找
     * 
     * @param serializabl
     * @param id
     * @return
     */
    public Serializable findObjectById(Serializable serializabl, String id);

    /***************************************************************************
     * 通过对象+id查找
     * 
     * @param serializabl
     * @param id
     * @return
     */
    public Serializable findObjectById(Serializable serializabl, int id);

    /***************************************************************************
     * 通过对象查找对象
     * 
     * @param serializabl
     * @return
     */
    public Serializable findObject(Serializable serializabl);

    /***************************************************************************
     * 保存对象
     * 
     * @param serializable
     * @return
     */

    public Serializable save(Serializable serializable);

    /***************************************************************************
     * 添加 修改
     * 
     * 
     * @param serializable
     */
    public Serializable saveOrUpdate(Serializable serializable);

    /***************************************************************************
     * 更新 修改
     * 
     * @param serializable
     */
    public Serializable update(Serializable serializable);

    /***************************************************************************
     * 执行hql
     * 
     * @param hql
     */
    public void updateByHQL(String hql);

    /***************************************************************************
     * 通过�?个id的字符串来删�?
     * 
     * @param serializable
     * @param id
     */
    public void deleteById(Serializable serializable, String id);

    /**
     * 通过id来删�?
     * 
     * @param serializable
     * @param id
     */
    public void deleteById(Serializable serializable, int id);

    /**
     * 执行hql语句
     * 
     * @param hql
     */

    public void runHql(String hql);

    /***************************************************************************
     * 通过hql查找数据
     * 
     * @param pageNo
     * @param pageSize
     * @param queryname
     * @return
     */
    public List ListQueryByHql(int pageNo, int pageSize, String queryname);

    /***************************************************************************
     * 
     * @param serializable
     * @return
     */

    public Long count(Serializable serializable);

    /**
     * 通过hql 统计数量，或者其他的数字
     * 
     * @param hql
     * @return
     */
    public Long countByHql(String hql);

    /**
     * 删除对象
     * 
     * @param serializable
     */
    public void delete(Serializable serializable);

    /**
     * 通过sql删除
     * 
     * @param hql
     */
    public void deleteByHql(String hql);

}
